package com.yuandian.bpm.bi.modules.quartz.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuandian.bpm.bi.modules.quartz.vo.ConfReportRunningTaskVo;
import com.yuandian.bpm.bi.modules.quartz.vo.ConfReportTaskInfo;
import com.yuandian.bpm.bi.modules.quartz.vo.ConfReportTaskLog;
import com.yuandian.bpm.common.core.util.R;

import java.util.List;

/**
 * 报表定时任务表-Service接口
 * @author zfsn
 * @date 2023-6-19
 */
public interface ConfReportTaskInfoService {

	/**
	 * 获取任务信息
	 * @param confReportTaskInfo 实例对象
	 * @return 通用返回对象
	 */
	R<ConfReportTaskInfo> getTaskInfoById(ConfReportTaskInfo confReportTaskInfo);


	/**
	 * 分页查询
	 * @param page 分页对象
	 * @param confReportTaskInfo 筛选条件
	 * @return 通用返回对象
	 */
	Page<ConfReportTaskInfo> getTaskInfoList(Page<ConfReportTaskInfo> page, ConfReportTaskInfo confReportTaskInfo);


	/**
	 * 分页查询-执行中的任务
	 * @param page 分页对象
	 * @param confReportTaskInfo 筛选条件
	 * @return 通用返回对象
	 */
	Page<ConfReportRunningTaskVo> getRunningTaskList(Page<ConfReportRunningTaskVo> page, ConfReportTaskInfo confReportTaskInfo);

	/**
	 * 分页查询日志信息
	 * @param confReportTaskInfo 筛选条件
	 * @return 通用返回对象
	 */
	Page<ConfReportTaskLog> getTaskLogList(Page<ConfReportTaskLog> page, ConfReportTaskInfo confReportTaskInfo);

	/**
	 * 新增任务
	 * @param confReportTaskInfo 实例对象
	 * @return 通用返回对象
	 */
	R<Object> saveTaskInfo(ConfReportTaskInfo confReportTaskInfo);

	/**
	 * 通过主键更新任务
	 * @param confReportTaskInfo 实例对象
	 * @return 通用返回对象
	 */
	R<Object> updateTaskInfoById(ConfReportTaskInfo confReportTaskInfo);

	/**
	 * 删除任务
	 * @param confReportTaskInfo 任务参数
	 * @return	通用返回对象
	 */
	R<Object> deleteTaskByIds(ConfReportTaskInfo confReportTaskInfo);

	/**
	 * 暂停任务
	 * @param ids 主键
	 * @return 通用返回对象 suspend
	 */
	R<Object> suspendTaskByIds(List<Integer> ids, int code);

	/**
	 * 启动任务
	 * @param ids 主键
	 * @return 通用返回对象 suspend
	 */
	R<Object> startTaskByIds(List<Integer> ids, int code);


	/**
	 * 全局配置-运行失败提醒-平台提醒
	 * @param state 状态 0：不勾选平台提醒  1：勾选平台提醒
	 * @return 通用返回对象 suspend
	 */
    R<Object> platformReminderHandle(Integer state);

	/**
	 * 全局配置-运行失败提醒-平台提醒
	 * @return 通用返回对象 suspend
	 */
	R<Object> getPlatformReminderState();
}
